package com.devilvan.customPartition;

import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;

/**
 * 接收的泛型来自Mapper的输出泛型
 */
public class CustomPartition extends Partitioner<Text,FlowEntity> {
    /**
     * 自定义分区器要求
     * 135,136,137,138,139 手机号开头的数据各分到一个文件下
     * 其余的分到同一个文件下
     */
    @Override
    public int getPartition(Text key, FlowEntity value, int numPartitions) {
        String phoneNum = key.toString();
        if (null != phoneNum && phoneNum.length() > 1){
            switch (phoneNum.substring(0,3)){
                case "135" : return 1;
                case "136" : return 2;
                case "137" : return 3;
                case "138" : return 4;
                case "139" : return 5;
                default: return 0;
            }
        }
        return 0;
    }
}
